package com.umpay.dto.merAccess.req.register;

import com.umpay.annotation.Pattern;
import com.umpay.dto.merAccess.req.CommonReq;
import org.hibernate.validator.constraints.NotEmpty;

/*******************************************************************
 * description : 个体会员注册请求类
 * @author zhangru
 * @date 2018年1月22日 上午11:17:12
 * @version 1.0
 *************************************************************/
public class IndividualMemberRegisterReq extends CommonReq {

	@NotEmpty(message = "商户订单号不能为空")
	@Pattern(message = "商户订单号格式不正确")
	private String order_id;//	商户订单号	变长20	商户订单号支持数字、英文字母，其他字符不建议使用  长度4至20位
	@NotEmpty(message = "商户订单日期不能为空")
	@Pattern(message = "商户订单日期格式不正确")
	private String mer_date;//	商户订单日期	定长8	商户生成订单的日期，格式YYYYMMDD
	@NotEmpty(message = "商户用户标识不能为空")
	@Pattern(message = "	商户用户标识格式不正确")
	private String mer_cust_id;//	商户用户标识	变长20	
	@NotEmpty(message = "会员类型不能为空")
	@Pattern(message = "会员类型格式不正确")
	private String user_type;//	会员类型	定长2	01：个人
	@Pattern(message = "账户类型格式不正确")
	private String acc_type;//	账户类型	变长3
	@NotEmpty(message = "会员名称不能为空")
	private String cust_name;//	用户姓名	变长256	校验规则：^[\\u4e00-\\u9fa5\\u00b7]{2,36}$  GBK编码后使用联动公钥进行RSA加密，最后使用BASE64编码
	@NotEmpty(message = "证件类型不能为空")
	@Pattern(message = "证件类型格式不正确")
	private String cert_type;//	证件类型
	@NotEmpty(message = "资质是否两证合一不能为空")
	@Pattern(message = "资质是否两证合一格式不正确")
	private String license_type;//	资质是否两证合一	定长1	3．是 4.否 	Y
	@NotEmpty(message = "营业执照号不能为空")
	@Pattern(message = "营业执照号格式不正确")
	private String license_no;//	营业执照号（全国统一信用代码）	变长18	15位 or18位数字	Y
	@Pattern(message = "税务登记证号格式不正确")
	private String tax_payer_num;//	税务登记证号	变长256		N
	@NotEmpty(message = "	法人姓名不能为空")
	@Pattern(message = "法人姓名格式不正确")
	private String lawyer;//	法人姓名	变长256	校验规则：^[\\u4e00-\\u9fa5\\u00b7]{2,36}$GBK编码后使用联动公钥进行RSA加密，最后使用BASE64编码	Y
	@NotEmpty(message = "法人证件类型不能为空")
	@Pattern(message = "法人证件类型格式不正确")
	private String identity_type;//	证件类型	变长2	详见附录证件类型
	@NotEmpty(message = "法人证件号不能为空")
	private String identity_code;//	证件号	变长256	用联动的公钥进行RSA加密后用，BASE64(GBK编码)加密该字段  证件类型为身份证时，仅支持18位长度   校验规则详见附录证件类型
	@NotEmpty(message = "联系人不能为空")
	@Pattern(message = "联系人格式不正确")
	private String cont_acts_name;//	联系人	变长 32	如果传递中文，需确保该字段在传入接口前，编码正确，使用UTF-8编码 UTF8转字节码-> RSA联动公钥加密->base64编码	Y
	@NotEmpty(message = "联系人手机号不能为空")
	@Pattern(message = "联系人手机号格式不正确")
	private String mobile_id;//	联系人手机号	定长11	
	@Pattern(message = "服务器异步通知路径格式不正确")
	private String notify_url;//服务器异步通知页面路径
	
	public String getOrder_id() {
		return order_id;
	}
	public void setOrder_id(String order_id) {
		this.order_id = order_id;
	}
	public String getMer_date() {
		return mer_date;
	}
	public void setMer_date(String mer_date) {
		this.mer_date = mer_date;
	}
	public String getMer_cust_id() {
		return mer_cust_id;
	}
	public void setMer_cust_id(String mer_cust_id) {
		this.mer_cust_id = mer_cust_id;
	}
	public String getUser_type() {
		return user_type;
	}
	public void setUser_type(String user_type) {
		this.user_type = user_type;
	}
	public String getAcc_type() {
		return acc_type;
	}
	public void setAcc_type(String acc_type) {
		this.acc_type = acc_type;
	}
	public String getCust_name() {
		return cust_name;
	}
	public void setCust_name(String cust_name) {
		this.cust_name = cust_name;
	}
	public String getCert_type() {
		return cert_type;
	}
	public void setCert_type(String cert_type) {
		this.cert_type = cert_type;
	}
	public String getLicense_no() {
		return license_no;
	}
	public void setLicense_no(String license_no) {
		this.license_no = license_no;
	}
	public String getTax_payer_num() {
		return tax_payer_num;
	}
	public void setTax_payer_num(String tax_payer_num) {
		this.tax_payer_num = tax_payer_num;
	}
	public String getLawyer() {
		return lawyer;
	}
	public void setLawyer(String lawyer) {
		this.lawyer = lawyer;
	}
	public String getIdentity_type() {
		return identity_type;
	}
	public void setIdentity_type(String identity_type) {
		this.identity_type = identity_type;
	}
	public String getIdentity_code() {
		return identity_code;
	}
	public void setIdentity_code(String identity_code) {
		this.identity_code = identity_code;
	}
	public String getCont_acts_name() {
		return cont_acts_name;
	}
	public void setCont_acts_name(String cont_acts_name) {
		this.cont_acts_name = cont_acts_name;
	}
	public String getMobile_id() {
		return mobile_id;
	}
	public void setMobile_id(String mobile_id) {
		this.mobile_id = mobile_id;
	}
	public String getNotify_url() {
		return notify_url;
	}
	public void setNotify_url(String notify_url) {
		this.notify_url = notify_url;
	}
	
	public String getLicense_type() {
		return license_type;
	}
	public void setLicense_type(String license_type) {
		this.license_type = license_type;
	}
	
	@Override
	public String toString() {
		return "IndividualMemberRegisterReq [ " + super.toString()
				+ ", order_id=" + order_id + ", mer_date=" + mer_date + ", mer_cust_id="
		        + mer_cust_id + ", user_type=" + user_type + ", acc_type=" + acc_type + ", cust_name=" + cust_name
		        + ", cert_type=" + cert_type + ", license_type=" + license_type + ", license_no=" + license_no
		        + ", tax_payer_num=" + tax_payer_num + ", lawyer=" + lawyer + ", identity_type=" + identity_type
		        + ", identity_code=" + identity_code + ", cont_acts_name=" + cont_acts_name + ", mobile_id=" + mobile_id
		        + ", notify_url=" + notify_url + "]";
	}

}
